package com.ruoyi.system.dao;

import com.ruoyi.common.annotation.DataSource;
import com.ruoyi.common.enums.DataSourceType;
import com.ruoyi.system.domain.dto.QuaStatisticsDto;
import com.ruoyi.system.domain.vo.LargeScreenVo;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * @author zzc
 * @date 2023-06-13  17:56
 * @description TODO
 */
public interface LargeScreenDao {


    int getEjgwNum();

    @DataSource(DataSourceType.SLAVE2)
    int getEjgwNumByName();

    LargeScreenVo.Tysscnldrstj getEjgwNumGrouopAge();

    LargeScreenVo.Tysczflzb selectTysczflzb();

    LargeScreenVo.Byzyrqfb getEryybzfb();

//    LargeScreenVo.Byzyrqfb getCzdjNumGroupNihss();

    int queryNumByCrsj(@Param("startTime") Date startTime,
                       @Param("endTime")Date endTime);


    int queryNumYearJr(@Param("startTime") Date startTime,
                       @Param("endTime")Date endTime,
                       @Param("codes")List<String> aisjrzt);

    int queryNumYearZy(@Param("startTime") Date startTime,
                       @Param("endTime")Date endTime);

    Integer queryNumYearJmrs(@Param("startTime") Date startTime,
                             @Param("endTime")Date endTime);

    List<Integer> getAge(@Param("startTime") Long startTime,
                         @Param("endTime")Long endTime);

    int queryBlsZlNumByCodes(@Param("startTime") Date startTime,
                             @Param("endTime")Date endTime,
                             @Param("codes")List<String> codes);


    @DataSource(DataSourceType.SLAVE2)
    LargeScreenVo.Tysczgltj getSqnum();

    List<LargeScreenVo.getHospitalAndNum> getOrgCodeByCityCode(QuaStatisticsDto.getHospitalAndNumByCityCode dto);

    List<LargeScreenVo.getHospitalAndNum> getHospitalAndNum(List<String> orgCodes);


    int getSqzTotalNum();

    @DataSource(DataSourceType.SLAVE2)
    LargeScreenVo.Byzyrqfb getEryybzfbByName();

    LargeScreenVo.Byczzxjbzlfb byczzxjbzlfb(QuaStatisticsDto.QueryPatient dto);
}
